package cn.yzhg.lib.http

import io.reactivex.Observable
import okhttp3.MultipartBody
import okhttp3.RequestBody
import okhttp3.ResponseBody
import retrofit2.http.*

/**
 * 类 名: ApiService
 * 作 者: yzhg
 * 创 建: 2018/11/15 0015
 * 版 本: 1.0
 * 历 史: (版本) 作者 时间 注释
 * 描 述:  Api接口
 */
interface ApiService {

    /**
     * 作 者: yzRxJava  onCompletehg
     * 历 史: (版本) 1.0
     * 描 述: RxJava方式请求
     */
    @FormUrlEncoded
    @POST
    fun postRx(@Url urlName: String, @FieldMap map: Map<String, String>): Observable<ResponseBody>

    /**
     * 作 者: yzhg
     * 历 史: (版本) 1.0
     * 描 述: RxJava get请求方式
     */
    @GET
    fun getRx(@Url urlName: String, @QueryMap queryMap: Map<String, String>): Observable<ResponseBody>

    /**
     * 作 者: yzhg
     * 历 史: (版本) 1.0
     * 描 述: RxJava 上传多张图片
     *
     * @param urlName 网络连接
     * @param params  图片集合
     */
    @Multipart
    @POST
    fun postImage(@Url urlName: String, params: Map<String, RequestBody>): Observable<ResponseBody>

    /**
     * 作 者: yzhg
     * 历 史: (版本) 1.0
     * 描 述: 用户上传头像
     */
    @Multipart
    @POST
    fun uploadImage(@Url urlName: String, @Part file: MultipartBody.Part): Observable<ResponseBody>
}